/*************************************************************************
	> File Name: hzoj_255.cpp
	> Author: zhangxu 
	> Mail: walrus1983@126.com
	> Created Time: 二  9/ 3 11:58:19 2024

	贪心策略：
	按区间【l，r】结束位置的从小到大排序，雷达放置在区间末尾，pos = 最后一个雷达的位置，
	如果pos < li，ans += 1， pos = ri;
	
 ************************************************************************/

#include <algorithm>
#include<iostream>
#include <cmath>
using namespace std;
#define MAX_N 2000
struct Range {
	double l, r;
} arr[MAX_N + 5];

bool cmp(const Range &a, const Range &b) {
	return a.r < b.r;
}

int main() {
	int n;
	double d, x, y, pos;
	cin >> n >> d;
	for(int i = 0; i < n; i++) {
		cin >> x >> y;
		if(y > d) {
			cout << -1 << endl;
			return 0;
		}
		double delta = sqrt((d * d) - (y * y));
		arr[i].l = x - delta;
		arr[i].r = x + delta;
	}
	sort(arr, arr + n, cmp);
	int ans = 1;
	pos = arr[0].r;
	for(int i = 1; i < n; i++) {
		if(pos < arr[i].l) {
			ans += 1;
			pos = arr[i].r;
		}
	}
	cout << ans << endl;
	return 0;
}